package map;

import java.util.*;

/**
 * @Classname: MapDemo2
 * @Author: bromide
 * @CreateTime: 2022/4/8--14:39
 * @Version: V1.0
 * @Description: Map的遍历
 * Map提供了三种遍历方式：
 * 1：遍历所有的key
 * 2：遍历每一组键值对
 * 3：遍历所有的value(该操作不常用)
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("语文", 99);
        map.put("数学", 98);
        map.put("英语", 97);
        map.put("物理", 96);
        map.put("化学", 99);
        System.out.println(map);

        Set<String> set = map.keySet();
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            String value = it.next();
            System.out.println(value);
        }

        /*
            Set entrySet()
            将当前Map中每一组键值对以一个Entry实例形式表示，并存入Set集合后返回
            java.util.Map.Entry的每一个实例用于表示Map中的一组键值对，其中方法:
            K getKey():获取对应的key
            V getValue():获取对应的value
         */
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        Iterator<Map.Entry<String, Integer>> iterator = entrySet.iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> e = iterator.next();
            String key = e.getKey();
            Integer value = e.getValue();
            System.out.println(key + ":" + value);
        }

        /*
            Collection values()
            将当前Map中所有的value以一个集合形式返回
         */
        Collection<Integer> c = map.values();
        for (Integer value : c) {
            System.out.println("value:" + value);
        }
    }
}
